home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 1
/
Gekikoh Dennoh Club Vol. 1 (Japan).7z
/
Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin
/
kowin
/
dockob
/
sin.kob
< prev
next >
Wrap
Text File
|
1995-11-13
|
4KB
|
146 lines
/**************************************
/* 神経衰弱 for こB! by v914AKSTN *
/**************************************
/********************
/* 起動時の初期設定 *
/********************
dim int crd(13*4-1)
dim int mekuri(1)
int mk,maisu
int i,c,c1,c2
int starttime
dim str mark(3)={"S","H","C","D"}
dim str suit(12)={"A","2","3","4","5","6","7","8","9","10","J","Q","K"}
dim str atari(3)={
"当たりでっせ!!!",
"やりよんのおぉ",
"おっしゃ! ええ感じやないか",
"その調子や、その調子っ!"
}
str mes[255]
int ms
/**********************
/* カードのシャッフル *
/**********************
for i=0 to 51:crd(i)=64+i:next
for i=0 to 51
c1=int(rnd()*52)
c=crd(c1):crd(c1)=crd(i):crd(i)=c
next
mk=0 /* めくってる最中の枚数
maisu=13*4 /* 残り枚数
/******************************
/* ウィンドウ下部のメッセージ *
/******************************
ITIME=50:ms=0 /* メッセージをコントロールするパラメータ
mes="神経衰弱 for こB!"
/******************************
/* ウィンドウオープン!!!! *
/******************************
WindowTitleOpen( 0, WINX, WINY, (16+4)*13+8*2, (32+4)*4+8*2+16+8, 0, "神経衰弱 for こB!", 3 )
starttime=IntervalTime()
end
/******************
/* 初期設定終わり *
/******************
/******************************************
/* マウスでクリックされた時、呼び出される *
/******************************************
func Emouse(wno)
int i,c
if info_Lon=0 then return(0)
/* 0 を返しておけば、右クリックでメニューが出る
if mk=2 then { /* めくった奴を戻す
for i=0 to 1
c=mekuri(i) /* めくった位置
crd(c)= crd(c) or 64 /* 裏向きフラグ
DrawSymbol( wno, (c mod 13)*20+8, (c\13)*36+8, "■", 9, 16 )
DrawSymbol( wno, (c mod 13)*20+8, (c\13)*36+24, "■", 9, 16 )
next
mk=0
return(1)
}
/* クリック位置から、カードを探す
if (info_x mod 20)<=8 then return(0)
if (info_y mod 36)<=8 then return(0)
c=(info_x\20)+(info_y\36)*13
if c>13*4 then return(0)
if crd(c)<64 then return(0) /* もう、めくってた
i=crd(c) and 63 /* 表向き
crd(c)=i
DrawSymbol( wno, (c mod 13)*20+8, (c\13)*36+8, mark(i\13), 9, 16 )
DrawSymbol( wno, (c mod 13)*20+8, (c\13)*36+24, suit(i mod 13), 9, 16 )
mekuri(mk)=c
mk=mk+1
if mk=2 then { /* 一致判定
if (crd(mekuri(0)) mod 13) = (crd(mekuri(1)) mod 13) then {
mk=0 /* 一致したので裏返す必要無し
maisu=maisu-2 /* 残り枚数減らす
mes=atari(crd(mekuri(0))\13):ms=0:ITIME=25
/* 当たりメッセージ設定
if maisu=0 then { /* all clear メッセージ!
i=(IntervalTime()-starttime)/100
mes="やりましたな! "+str$(i)+"秒ですぞ!!"
ms=0:ITIME=50
}
}
}
endfunc
/******************************************
/* 再描画する必要が生じた時、呼び出される *
/******************************************
func Eredraw(wno)
int i
DrawClear( wno, 1 ) /* ウィンドウを灰色でクリア
for i=0 to 51
if crd(i)>=64 then { /* 裏向きのカードを描く
DrawSymbol( wno, (i mod 13)*20+8, (i\13)*36+8, "■", 9, 16 )
DrawSymbol( wno, (i mod 13)*20+8, (i\13)*36+24, "■", 9, 16 )
} else { /* 表向きのカードを描く
DrawSymbol( wno, (i mod 13)*20+8, (i\13)*36+8, mark(crd(i)\13), 9, 16 )
DrawSymbol( wno, (i mod 13)*20+8, (i\13)*36+24, suit(crd(i) mod 13), 9, 16 )
}
next
endfunc
/**********************************
/* ITIME/100 秒ごとに呼び出される *
/**********************************
func Einterval(wno)
ms=ms+2
DrawSymbol( wno, 8, 8+4*36+8, mid$( space$(36)+mes+space$(36),ms,35 ), 9, 16 )
if ms>19+len(mes)/2 then ITIME=-1
endfunc
/*******************************
/* プログラム終わり H7/11/12 *
/*******************************